package com.xiaoshuidi.cloud.module.rooms.controller.admin.estimate.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

/**
 * @Author Feng
 * @date 2023/5/29
 */
@Data
@Schema(description = "勘测保存|修改 请求对象")
public class EstimateSaveOrUpdateReq {

    /**
     * 主键id 重新测算的时候必填
     */
    @Schema(description = "主键id 重新测算的时候必填")
    private Long id;

    /**
     * 省份 默认安徽省
     */
    @NotNull(message = "省份不能为空")
    @Schema(description = "省份 默认安徽省")
    private String province;

    /**
     * 城市 默认合肥市
     */
    @NotNull(message = "城市不能为空")
    @Schema(description = "城市 默认合肥市")
    private String city;

    /**
     * 区域
     */
    @NotNull(message = "区域不能为空")
    @Schema(description = "区域")
    private String district;

    /**
     * 街道
     */
    @NotNull(message = "街道不能为空")
    @Schema(description = "街道")
    private String street;

    /**
     * 小区名称
     */
    @NotNull(message = "小区名称不能为空")
    @Schema(description = "小区名称")
    private String area;

    /**
     * 栋
     */
    @NotNull(message = "楼栋不能为空")
    @Schema(description = "栋")
    private String buildingNo;

    /**
     * 单元
     */
    @NotNull(message = "单元号不能为空")
    @Schema(description = "单元")
    private String unitNo;

    /**
     * 房间号
     */
    @NotNull(message = "房间号不能为空")
    @Schema(description = "房间号")
    private String roomHouseNo;

    /**
     * 卧室数
     */
    @Schema(description = "房屋户型-卧室数")
    @NotNull(message = "卧室数不能为空")
    @Min(value = 1, message = "卧室数不能小于1")
    @Max(value = 10, message = "卧室数不能大于10")
    private Integer bedRoomNum;

    /**
     * 客厅数
     */
    @Schema(description = "房屋户型-客厅数")
    @NotNull(message = "客厅数不能为空")
    @Min(value = 0, message = "客厅数不能小于0")
    @Max(value = 10, message = "客厅数不能大于10")
    private Integer livingRoomNum;

    /**
     * 卫生间数
     */
    @Schema(description = "房屋户型-卫生间数")
    @NotNull(message = "卫生间数量不能为空")
    @Min(value = 0, message = "卫生间数量不能小于0")
    @Max(value = 10, message = "卫生间数量不能大于10")
    private Integer toiletNum;

    /**
     * 厨房数
     */
    @Schema(description = "房屋户型-厨房数")
    private Integer kitchenNum;

    /**
     * 阳台数
     */
    @Schema(description = "房屋户型-阳台数")
    private Integer balcony;
    /**
     * 面积
     */
    @NotNull(message = "面积不能为空")
    @Min(value = 0, message = "面积不能小于0")
    @Schema(description = "面积")
    private Double space;

    /**
     * 装修是否需改造
     */
    @NotNull(message = "是否需改造不能为空")
    @Schema(description = "装修是否需改造")
    private Boolean isAlteration;

    /**
     * 房屋图片，多张用逗号分割
     */
    @Schema(description = "房屋图片，多张用逗号分割")
    private String picUrl;

    /**
     * 房屋视频，多个用逗号分割
     */
    @Schema(description = "房屋视频，多个用逗号分割")
    private String videoUrl;

    /**
     * 部门ID
     */
    @Schema(description = "部门ID")
    private Long deptId;

    /**
     * 基准价计算参数
     */
    @Schema(description = "基准价计算参数")
    private BasicPriceReq basicPriceReq;

    /**
     * 装修改造表参数
     */
    @Schema(description = "装修改造表参数")
    private DecorationEvaluateReq decorationEvaluateReq;

    /**
     * 租金估算参数
     */
    @Schema(description = "租金估算参数")
    private RentEvaluateReq rentEvaluateReq;

    /**
     * 最高价格计算参数
     */
    @Schema(description = "最高价格计算参数")
    private HighestPriceReq highestPriceReq;

    /**
     * 计算房屋勘测系数
     */
    @Schema(description = "计算房屋勘测系数")
    private SurveyReq surveyReq;
}
